package com.pactera.madp.cp.service.sync;

import com.baomidou.mybatisplus.extension.service.IService;
import com.pactera.madp.cp.api.entity.sync.MaYesterdayDataBoardEntity;
import com.pactera.madp.cp.api.entity.sync.MaTodayDataBoardEntity;
import com.pactera.madp.cp.api.entity.sync.SyncEventEntity;

import java.util.List;

public interface SyncEventService extends IService<SyncEventEntity> {

    /**
     * 获取客户经理当日看板数据
     * @param date      指定日期
     * @return
     */
    List<MaTodayDataBoardEntity> getRecommendBoard(String date);

    /**
     * 昨日视角汇总近三日访客和浏览次数
     * @param beginDate  开始日期
     * @param endDate    结束日期
     * @return 客户经理指定日期访客和浏览次数
     */
    List<MaYesterdayDataBoardEntity> countThreeDate(String beginDate, String endDate);

    /**
     * 昨日视角汇近七日汇总访客和浏览次数
     * @param beginDate  开始日期
     * @param endDate    结束日期
     * @return 客户经理指定日期访客和浏览次数
     */
    List<MaYesterdayDataBoardEntity> countSevenDate(String beginDate, String endDate);

    /**
     * 昨日视角汇总近三日理财产品访客数和浏览数
     * @param beginDate  开始日期
     * @param endDate    结束日期
     * @return 客户经理指定日期访客和浏览次数
     */
    List<MaYesterdayDataBoardEntity> countThreeDateFinancial(String beginDate, String endDate);

    /**
     * 昨日视角汇总近七日理财产品访客数和浏览数
     * @param beginDate  开始日期
     * @param endDate    结束日期
     * @return 客户经理指定日期访客和浏览次数
     */
    List<MaYesterdayDataBoardEntity> countSevenDateFinancial(String beginDate, String endDate);

    /**
     * 昨日视角汇总近三日基金产品访客数和浏览数
     * @param beginDate  开始日期
     * @param endDate    结束日期
     * @return 客户经理指定日期访客和浏览次数
     */
    List<MaYesterdayDataBoardEntity> countThreeDateFund(String beginDate, String endDate);

    /**
     * 昨日视角汇总近七日基金产品访客数和浏览数
     * @param beginDate  开始日期
     * @param endDate    结束日期
     * @return 客户经理指定日期访客和浏览次数
     */
    List<MaYesterdayDataBoardEntity> countSevenDateFund(String beginDate, String endDate);

    /**
     * 昨日视角汇总近三日存款产品访客数和浏览数
     * @param beginDate  开始日期
     * @param endDate    结束日期
     * @return 客户经理指定日期访客和浏览次数
     */
    List<MaYesterdayDataBoardEntity> countThreeDateDeposit(String beginDate, String endDate);

    /**
     * 昨日视角汇总近七日存款产品访客数和浏览数
     * @param beginDate  开始日期
     * @param endDate    结束日期
     * @return 客户经理指定日期访客和浏览次数
     */
    List<MaYesterdayDataBoardEntity> countSevenDateDeposit(String beginDate, String endDate);

    /**
     * 昨日视角汇总近三日贷款产品访客数和浏览数
     * @param beginDate  开始日期
     * @param endDate    结束日期
     * @return 客户经理指定日期访客和浏览次数
     */
    List<MaYesterdayDataBoardEntity> countThreeDateLoan(String beginDate, String endDate);

    /**
     * 昨日视角汇总近七日贷款产品访客数和浏览数
     * @param beginDate  开始日期
     * @param endDate    结束日期
     * @return 客户经理指定日期访客和浏览次数
     */
    List<MaYesterdayDataBoardEntity> countSevenDateLoan(String beginDate, String endDate);

    /**
     * 昨日视角汇总近三日信用卡产品访客数和浏览数
     * @param beginDate  开始日期
     * @param endDate    结束日期
     * @return 客户经理指定日期访客和浏览次数
     */
    List<MaYesterdayDataBoardEntity> countThreeDateCredit(String beginDate, String endDate);
    /**
     * 昨日视角汇总近七日信用卡产品访客数和浏览数
     * @param beginDate  开始日期
     * @param endDate    结束日期
     * @return 客户经理指定日期访客和浏览次数
     */
    List<MaYesterdayDataBoardEntity> countSevenDateCredit(String beginDate, String endDate);

    /**
     * 日间批量同步前获取最大同步入库时间
     * @return 日间批量同步前获取最大同步入库时间
     */
    Long getOneLastMaxReceiveTime();

}
